/* ===========================================
   RESPONSIVO — sem alterar o desktop
   =========================================== */


/* =========================
   HEADER
========================= */

/* Tablet */
@media (max-width: 980px) {

  .page-header{
    flex-wrap: wrap;
    align-items: flex-start;
    margin-bottom: 0px;
  }

  .page-header > div:first-child{
    flex: 1 1 100%;
    min-width: 0;
  }

  .page-header .dropdown-wrapper{
    flex: 0 0 auto;
    margin-left: 0;
  }

  .page-header .novo-nfe-dropdown{
    flex: 0 0 auto;
    margin-left: 0;
  }

}

/* Mobile */
@media (max-width: 520px){
    
    .page-header .btn{
        width:100%;
    }

    .page-header .dropdown-wrapper{
        width:100%;
    }

    .page-header .novo-nfe-dropdown{
        width:100%;
    }

    #btnNewHeader{
        width:100%;
        justify-content:center;
    }

    .page-title{
        font-size:22px;
        margin-left: 6px;
    }

    .page-subtitle{
      margin-left: 6px;
    }

}



/* =========================
   KPI GRID RESPONSIVO
========================= */

@media (max-width: 980px){

  .kpi-grid{
    grid-template-columns: repeat(12,1fr);
  }

  .kpi-card{
    grid-column: span 4;
  }

    #cardsGrid.cards-grid {
    max-height: 60vh;
  }

}

@media (max-width: 620px){

  .kpi-grid{
    grid-template-columns: repeat(6,1fr);
  }

  .kpi-card{
    grid-column: span 3;
  }

}

@media (max-width: 420px){

  .kpi-grid{
    grid-template-columns: repeat(1,1fr);
  }

  .kpi-card{
    grid-column: span 1;
  }

}



/* =========================
  SCROLL MOBILE
========================= */



@media (max-width:520px){

  .deal-list{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow-y:auto;
  }

  .div-content-consulta{
    flex:1 1 auto;
    min-height:0;
  }

  .div-content-consulta .page-wrap{
    display:flex;
    flex-direction:column;
    height:calc(100vh - 120px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  #dealList{
    max-height:none !important;
  }

}



/* ===========================================
   MOBILE TOOLBAR (KPI + BUSCA + FILTRO)
=========================================== */

@media (max-width:520px){

  .search-row{
    position:relative;
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    margin-bottom:10px;
  }

}



/* =========================
   BOTÃO KPI
========================= */

#btnToggleKpi,
#btnToggleKpiFinanceiro{
  display:none;
}

@media (max-width:520px){

  #btnToggleKpi,
  #btnToggleKpiFinanceiro{
    display:inline-flex;
    width:42px;
    height:42px;
    border-radius:14px;
    flex:0 0 auto;
  }

  /* estado ativo */

  #btnToggleKpi.is-active,
  #btnToggleKpiFinanceiro.is-active{
    background:var(--c-primary-050);
    border-color:var(--c-primary);
    box-shadow:0 8px 24px var(--c-primary-shadow-sm);
    transform:translateY(-1px);
  }

}



/* =========================
   BUSCA COMPACTA
========================= */

@media (max-width:520px){

  .search-row .search-wrap{
    position:relative;
    flex:1 1 auto;
    min-width:0;
  }

  .search-row .input-pesquisa{
    height:42px;
    border-radius:14px;
    padding-left:38px !important;
    font-size:13px;
  }

}



/* =========================
   FILTROS MOBILE
========================= */

@media (max-width:520px){

  .search-row .filter-inline{
    display:inline-flex;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
  }

  #openModalFiltroNegociacao{
    width:42px;
    height:42px;
    padding:0;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  #filtroStatus{
    width:112px;
    min-width:112px;
  }

}



/* =========================
   EXPANSÃO DA BUSCA
========================= */

@media (max-width:520px){

  .search-row.is-searching .search-wrap{
    position:absolute;
    left:12px;
    right:12px;
    top:10px;
    z-index:20;
  }

  .search-row.is-searching .input-pesquisa{
    width:100%;
    background:#fff;
    border-color:var(--c-primary);
    box-shadow:0 10px 24px rgba(2,6,23,.12);
  }

  .search-row.is-searching #btnToggleKpi,
  .search-row.is-searching #btnToggleKpiFinanceiro,
  .search-row.is-searching .filter-inline{
    opacity:0;
    pointer-events:none;
  }

}



/* =========================
   KPI COLAPSÁVEL
========================= */

@media (max-width:520px){

  #kpiGrid,
  #kpi-totais-financeiros{
    display:none;
    margin:8px 0 12px;
  }

  #kpiGrid.is-open,
  #kpi-totais-financeiros.is-open{
    display:grid;
  }

}

@media (max-width:520px){

  /* quando KPIs abertos, cria um "header" colado em cima deles */
  #kpiGrid.is-open,
  #kpi-totais-financeiros.is-open{
    position: relative;
    padding-top: 52px; /* espaço para o botão ficar em cima */
  }

  /* o botão vira um "fechar" acima dos KPIs */
  #btnToggleKpi.is-sticky,
  #btnToggleKpiFinanceiro.is-sticky{
    position: sticky;
    top: 8px;           /* distância do topo da viewport (ajuste se precisar) */
    z-index: 30;
  }

  /* posiciona o botão dentro do bloco dos KPIs */
  #kpiGrid.is-open #btnToggleKpi,
  #kpi-totais-financeiros.is-open #btnToggleKpiFinanceiro{
    position: absolute;
    top: 8px;
    left: 12px;
    right: 12px;
    width: auto;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  /* texto de "Fechar KPIs" só no mobile quando aberto */
  #kpiGrid.is-open #btnToggleKpi::after,
  #kpi-totais-financeiros.is-open #btnToggleKpiFinanceiro::after{
    content: "Fechar KPIs";
    font-size: 14px;
    font-weight: 500;
    color: var(--c-text);
  }

  /* deixa o ícone com cor de ação */
  #kpiGrid.is-open #btnToggleKpi i,
  #kpi-totais-financeiros.is-open #btnToggleKpiFinanceiro i{
    color: var(--c-primary);
    font-size: 18px;
  }
}

/* =========================================================
   TOOLBAR MOBILE PADRÃO (funciona com ou sem KPI)
   - Mesma linha
   - Busca compacta no estado normal
   - Ao focar, busca expande por cima
   - Chips com scroll horizontal (Veículos)
========================================================= */

@media (max-width: 520px){

  /* === container toolbar (serve pra .toolbar e .search-row) === */
  .toolbar,
  .search-row{
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 5px;
    min-height: 52px; 
  }

  /* === botão KPI (se existir na página) === */
  .toolbar .kpi-chip,
  .search-row .kpi-chip,
  .toolbar #btnToggleKpi,
  .toolbar #btnToggleKpiFinanceiro,
  .search-row #btnToggleKpi,
  .search-row #btnToggleKpiFinanceiro{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 14px;
    border: 1px solid var(--c-line);
    background: #fff;
    flex: 0 0 auto;
  }

  /* estado ativo (tipo hover) quando KPIs estiverem abertos */
  .kpi-chip.is-active,
  #btnToggleKpi.is-active,
  #btnToggleKpiFinanceiro.is-active{
    background: var(--c-primary-050);
    border-color: var(--c-primary);
  }

  /* em páginas SEM KPI: não existe botão -> nada aparece */

  /* === busca compacta === */
  .toolbar .search-wrap,
  .search-row .search-wrap{
    flex: 1 1 auto;
    min-width: 0;
    position: relative;
  }

  .toolbar .input-pesquisa,
  .search-row .input-pesquisa{
    height: 42px;
    border-radius: 14px;
    padding-left: 38px !important;
    font-size: 13px;
  }

  /* === filtros/controls na mesma linha === */
  /* Negociações: usa .filter-inline */
  .toolbar .filter-inline,
  .search-row .filter-inline{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-width: 0;
  }

  /* Veículos: usa .filters (chips) */
  .toolbar .filters{
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-width: 0;

    /* chips não cabem? vira carrossel horizontal */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 46vw; /* ajusta se quiser mais/menos espaço */
    padding-bottom: 2px;
  }

  .toolbar .filters::-webkit-scrollbar{
    height: 4px;
  }

  .toolbar .filter-chip{
    white-space: nowrap;
    flex: 0 0 auto;
    padding: 8px 10px;
    border-radius: 999px;
    font-size: 12px;
  }

  /* Negociações: botão filtro e select compactos */
  #openModalFiltroNegociacao{
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  #filtroStatus{
    width: 112px;
    min-width: 112px;
  }

  /* =========================================================
     EXPANSÃO DA BUSCA POR CIMA (apenas quando focar)
  ========================================================= */
  .toolbar.is-searching .search-wrap,
  .search-row.is-searching .search-wrap{
    position: absolute;
    left: 5px;
    right: 5px;
    top: 5px;
    z-index: 30;
  }

  .toolbar.is-searching .input-pesquisa,
  .search-row.is-searching .input-pesquisa{
    width: 100%;
    background: #fff;
    border-color: var(--c-primary);
    box-shadow: 0 10px 24px rgba(2, 6, 23, .12);
  }

   .toolbar.is-searching,
  .search-row.is-searching{
    min-height: 52px; /* mantém a mesma altura quando a busca expande */
  }


  .toolbar.is-searching .filters,
  .toolbar.is-searching .filter-inline,
  .toolbar.is-searching .kpi-chip,
  .toolbar.is-searching #btnToggleKpi,
  .toolbar.is-searching #btnToggleKpiFinanceiro,
  .search-row.is-searching .filter-inline,
  .search-row.is-searching #btnToggleKpi,
  .search-row.is-searching #btnToggleKpiFinanceiro{
    opacity: 0;
    pointer-events: none;
  }
}

/* Desktop: botão mobile escondido */
.filters-mobile { display: none; }

@media (max-width: 520px){
  /* Mobile: esconde chips e mostra botão */
  .toolbar .filters { display: none; }
  .filters-mobile { display: block; position: relative; }

  .toolbar{
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 5px 0 5px;
  }

  .toolbar .search-wrap{
    flex: 1 1 auto;
    min-width: 0;
  }

  .btn-filter-mobile{
    height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1px solid var(--c-line);
    background: #fff;
    cursor: pointer;
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .btn-filter-mobile .chevron{
    margin-left: 6px;
    transition: transform .18s ease;
    color: var(--c-subtle);
  }

  .filters-mobile.is-open .btn-filter-mobile .chevron{
    transform: rotate(180deg);
  }

  .filter-menu-mobile{
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: 220px;
    padding: 8px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid var(--c-line);
    box-shadow: 0 14px 34px rgba(2,6,23,.12);
    z-index: 50;
  }

  .filters-mobile.is-open .filter-menu-mobile{ display: block; }

  .filter-item{
    width: 100%;
    height: 40px;
    border-radius: 12px;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0 12px;
    cursor: pointer;
    color: var(--c-text);
  }

  .filter-item:hover{
    background: rgba(15, 23, 42, .06);
  }

  .filter-item.is-active{
    background: rgba(15, 23, 42, .08);
    font-weight: 600;
  }

  .dropdown-content-novo{
    width: 100%;
  }
}

/* ===== Paginação topo (minimal) ===== */
#paginacao-topo{
  display: none;
  justify-content: flex-end;
  margin-bottom: 5px;
}

#paginacao-topo .paginator__wrap{
  display: flex;
  align-items: center;
  gap: 6px;
  border-top: none;
  padding-top: 0;
}

#paginacao-topo .paginator__info,
#paginacao-topo .paginator__perpage,
#paginacao-topo .paginator__sep{
  display: none;
}

#paginacao-topo .paginator__actions{
  display: flex;
  align-items: center;
  gap: 6px;
}

#paginacao-topo .filter-chip{
  border: none;
  background: transparent;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  border-radius: 50%;
  font-size: 13px;
  color: var(--c-subtle);
  cursor: pointer;
}

#paginacao-topo .filter-chip.active{
  background: var(--c-primary);
  color: white;
}

#paginacao-topo .filter-chip[data-action]{
  font-size: 18px;
  padding: 0;
}

/* Mobile: topo ON, rodapé OFF */
@media (max-width: 520px){
  #paginacao{
    display: none !important;
  }

  #paginacao-topo{
    display: flex !important;
  }
}


@media (max-width: 520px){
  #cardsGrid.cards-grid{
    margin-top: 0 !important;
  }
}